The present invention relates to a system and method for tracking data transmissions, and for reporting on the receipt of such transmissions by the intended recipient, including the quality of interaction with the data transmission by the recipient. In particular, the system and method of the present invention provide a mechanism for notifying the sender of the quality of such an interaction.
Networks which connect two or more computers, such as the Internet or intranets, enable client computers to obtain data transmissions, such as documents, images, messages, data packages or other types of data, from remote storage media which are not installed on the client computer itself. Instead, these remote storage media are managed and operated through a remote computer, known as a server computer or simply as a xe2x80x9cserverxe2x80x9d (in the same vein, the client computer is also often termed only a xe2x80x9cclientxe2x80x9d). The data transmission may then be sent to a recipient user at a particular user address and/or user computer by a sending user, such that the data transmission is xe2x80x9cpushedxe2x80x9d, or transmitted by request of a user other than the recipient user. One example of a xe2x80x9cpushxe2x80x9d technology is e-mail (electronic mail), in which the ending user controls when the e-mail message is sent, while the recipient user passively receives the e-mail message at a particular e-mail address. Typically, the messages at such an e-mail address may be accessed from a plurality of different computers. Thus, the recipient user may optionally choose to receive, or xe2x80x9cdownloadxe2x80x9d, the e-mail messages at a convenient computer.
One difficulty with e-mail, as well as with other xe2x80x9cpushxe2x80x9d technologies, is that the quality of the interaction of the recipient user with the e-mail message is difficult to ascertain. Indeed, unless the sending user and the recipient user share a common e-mail software within a common network, the sending user may not even be able to determine whether the e-mail message has been received at all. Furthermore, the existing solutions within the context of sharing a common e-mail software within a common network do not provide a mechanism for notifying the sending user if the message has not been received by the recipient user, or if the recipient user has not interacted with the message sufficiently. In addition, these existing solutions do not provide any mechanism for attempting to contact the recipient user through another communication medium, such as voice mail for example, in order to notify the recipient user of the existence of the message. Also, the existing solutions are restricted to e-mail alone, and are not useful for tracking and reporting on other types of data transmissions within the context of xe2x80x9cpushxe2x80x9d technologies. Thus, existing solutions have many disadvantages.
Therefore, there is an unmet need for, and it would be highly useful to have, a system and method for tracking and reporting various types of data transmissions within the context of xe2x80x9cpushxe2x80x9d technologies, such as e-mail, for determining the type of interaction between the recipient user and a particular data transmission, and for notifying the sending user and/or the recipient user through the same or an alternative communication medium if the initial data transmission has not been satisfactorily received.
The present invention is of a system and method for tracking a data transmission, and for reporting the receipt of the data transmission and the level and/or type of interaction between the intended recipient user and the data transmission. If the intended recipient user does not receive the data transmission within a predetermined period of time, and/or if the intended recipient user does not interact with the data transmission according to the predetermined level and/or type of interaction, then preferably the intended recipient user receives a data transmission through a different communication medium, such as voice mail if the original medium was e-mail, for example. More preferably, the sender user and/or another designated user is notified if such a period of time has elapsed.
According to the present invention, there is provided a method for reporting an interaction of a recipient user with a data transmission, the method comprising the steps of: (a) providing a recipient client for receiving the data transmission, and a server for sending the data transmission; (b) sending the data transmission from the server to the recipient client; (c) if the data transmission is successfully received by the recipient client, reporting a successful receipt of the data transmission to the server; (d) determining the interaction of the recipient user with the data transmission by the recipient client; and (e) reporting the interaction to the server.
According to another embodiment of the present invention, there is provided a system for reporting an interaction of a recipient user with a data transmission, the system comprising: (a) a server for sending the data transmission; (b) a recipient client for receiving the data transmission and for the interaction with the recipient user; (c) a client agent for reporting a report of the interaction, the client agent being operated by the recipient client; (d) a server agent for receiving the report of the interaction and for sending a notification if the interaction is not performed; and (e) a sender agent for receiving the notification. As an example, lack of performance of an interaction could be determined according to an elapsed period of time, such that if the interaction does not occur, the interaction is designated as not performed. Lack of performance may be absolute, if no interaction occurred for example, or relative, if the desired level or degree of interaction is not performed for example.
Hereinafter, the term xe2x80x9cprotocol based on TCP/IPxe2x80x9d includes any such protocol, including but not limited to the HTTP (hypertext transfer protocol) and FTP (file transfer protocol) protocols.
Hereinafter, the term xe2x80x9cdata transmissionxe2x80x9d refers to any discrete, identifiable unit of data, including but not limited to documents, images, e-mail messages, voice mail messages, paging messages, data packages or any other type of data.
Hereinafter, the term xe2x80x9cWeb browserxe2x80x9d refers to any software program which can display text, graphics, or both, from Web pages on World Wide Web sites. Hereinafter, the term xe2x80x9cWeb pagexe2x80x9d refers to any document written in a mark-up language including, but not limited to, HTML (hypertext mark-up language) or VRML (virtual reality modeling language), dynamic HTML, XML (extended mark-up language) or related computer languages thereof, as well as to any collection of such documents reachable through one specific Internet address or at one specific World Wide Web site, or any document obtainable through a particular URL (Uniform Resource Locator). Hereinafter, the term xe2x80x9cWeb sitexe2x80x9d refers to at least one Web page, and preferably a plurality of Web pages, virtually connected to form a coherent group. Hereinafter, the term xe2x80x9cWeb serverxe2x80x9d refers to a computer or other electronic device which is capable of serving at least one Web page to a Web browser.
Hereinafter, the term xe2x80x9cappletxe2x80x9d refers to a self-contained software module written in an applet language such as Java or constructed as an ActiveX(trademark) control.
Hereinafter, the term xe2x80x9cnetworkxe2x80x9d refers to a connection between any two computers which permits the transmission of data.
Hereinafter, the phrase xe2x80x9cdisplay a Web pagexe2x80x9d includes all actions necessary to render at least a portion of the information on the Web page available to the computer user. As such, the phrase includes, but is not limited to, the static visual display of static graphical information, the audible production of audio information, the animated visual display of animation and the visual display of video stream data.
Hereinafter, the terms xe2x80x9ccomputer userxe2x80x9d and xe2x80x9cuserxe2x80x9d both refer to the person who operates the Web browser or other GUI interface and navigates through the system of the present invention by operating a computer.
Hereinafter, the term xe2x80x9ccomputerxe2x80x9d refers to a combination of a particular computer hardware system and a particular software operating system. Examples of such hardware systems include those with any type of suitable data processor. Hereinafter, the term xe2x80x9ccomputerxe2x80x9d includes, but is not limited to, personal computers (PC) having an operating system such as DOS, Windows(trademark), OS/2(trademark) or Linux; Macintosh(trademark) computers; computers having JAVA(trademark)-OS as the operating system; and graphical workstations such as the computers of Sun Microsystems(trademark) and Silicon Graphics(trademark), and other computers having some version of the UNIX operating system such as AIX(trademark) or SOLARIS(trademark) of Sun Microsystems(trademark); a PalmPilot(trademark), a PilotPC(trademark), or any other handheld device; or any other known and available operating system. Hereinafter, the term xe2x80x9cWindows(trademark)xe2x80x9d includes but is not limited to Windows95(trademark), Windows 3.X(trademark) in which xe2x80x9cxxe2x80x9d is an integer such as xe2x80x9c1xe2x80x9d, Windows NT(trademark), Windows98(trademark), Windows CE(trademark) and any upgraded versions of these operating systems by Microsoft Inc. (Seattle, Wash., USA).
For the present invention, a software application could be written in substantially any suitable programming language, which could easily be selected by one of ordinary skill in the art. The programming language chosen should be compatible with the computer by which the software application is executed, and in particularly with the operating system of that computer. Examples of suitable programming languages include, but are not limited to, C, C++ and Java. Furthermore, the functions of the present invention, when described as a series of steps for a method, could be implemented as a series of software instructions for being operated by a data processor, such that the present invention could be implemented as software, firmware or hardware, or a combination thereof.